Business Intelligence (BI) generally refers to software tools used to improve business enterprise decision-making. These tools are commonly applied to financial, human resource, marketing, sales, service provider, customer, and supplier analyses. More specifically, these tools can include reporting and analysis tools for presenting information, content delivery infrastructure systems for delivering and managing reports and analytics, and data warehousing systems for cleansing and consolidating information from disparate sources. BI tools may work with data management systems, such as relational databases or On Line Analytic Processing (OLAP) systems used to collect, store, and manage raw data.
Application software including BI tools can facilitate user productivity with multilingual support, which can enable a user to view and work with data in a language desired by the user. A vendor typically releases software with a sub-set of the languages that the software is capable of supporting. The software is typically deployed, or installed in a production environment, so that the software is executing based on the sub-set of languages. Later, additional languages can be added by releasing “language packs.” A language pack is a collection of language extension resources (e.g., strings, graphics, recorded media, other name-value pairs, files, executable instructions) needed by software to support or partially support one or more languages. These language packs are normally applied as a patch to the deployed software.
Vendors commonly ship application software in a self-contained form such as Web Application Archive (WAR) or Java Archive (JAR) format, so that the software can be deployed on remote or isolated computers. WAR files may include eXtensible Markup Language (XML) files, Java classes, Java server pages, and other objects for a web application. A self-contained application typically does not use outside resources to enable execution of the application. In the case of self-contained applications with multilingual support, resources for language support typically are inside the WAR file when the WAR file is created. This means that deployed software is re-deployed with the language extension resources, which can create a significant service interruption problem.
The problem is illustrated by one example of a patching process. The patching process includes uncompressing the original WAR file, then copying the language extension resources into the original WAR file to create a modified WAR file, and then recompressing the modified WAR file. To deploy the modified WAR file, the original WAR file is typically undeployed, which translates into an interruption of the services provided by the application defined by the original WAR file. The length of the service interruption can be magnified due to the time required to uncompress and recompress large WAR files.
In view of the foregoing problems, it would be desirable to provide improved techniques for enabling multilingual applications to execute with language extension resources.